﻿using System;
using SharpSqlAnalyzer.pp.processor;
using SharpSqlAnalyzer.pp.stmtformatter.type;
using SharpSqlAnalyzer.pp.stmtformatter.type.comm;

namespace SharpSqlAnalyzer.pp.stmtformatter.builder.comm
{
	// Token: 0x0200021B RID: 539
	public class CreateTableStmtFormatterBuilder : AbstractStmtFormatterBuilder
	{
		// Token: 0x06001260 RID: 4704 RVA: 0x00318C6C File Offset: 0x00316E6C
		protected internal override void initSpecialProcessorForFormatter(AbstractStmtFormatter formatterArg)
		{
			CreateTableStmtFormatter createTableStmtFormatter = formatterArg as CreateTableStmtFormatter;
			createTableStmtFormatter.addSpecialProcessor(ProcessorFactory.createCapitalisationProcessor(this.Option));
			createTableStmtFormatter.addSpecialProcessor(ProcessorFactory.createCombineWhitespaceAndClearReturnProcessor(this.Option));
			createTableStmtFormatter.addSpecialProcessor(ProcessorFactory.createCreateTableBEInNewLineProcessor(this.Option, new bool?(this.Option.beStyleCreatetableLeftBEOnNewline), new bool?(this.Option.beStyleCreatetableRightBEOnNewline), new bool?(this.Option.createtableListitemInNewLine)));
			createTableStmtFormatter.addSpecialProcessor(ProcessorFactory.createCreateTableConstraintAlignProcessor(this.Option));
			createTableStmtFormatter.addItemListProcessor(ProcessorFactory.createColumnlistCommaProcessor(this.Option, this.Option.defaultCommaOption, this.Option.defaultAligntype));
			createTableStmtFormatter.addItemListProcessor(ProcessorFactory.createCreateTableItemAlignProcessor(this.Option, this.Option.createtableFieldlistAlignOption));
			createTableStmtFormatter.addConstraintListProcessor(ProcessorFactory.createColumnlistCommaProcessor(this.Option, this.Option.defaultCommaOption, this.Option.defaultAligntype));
		}

		// Token: 0x06001261 RID: 4705 RVA: 0x00318D5C File Offset: 0x00316F5C
		protected internal override AbstractStmtFormatter newInstanceFormatter()
		{
			return new CreateTableStmtFormatter();
		}
	}
}
